package com.hc.oa.model;

import java.io.Serializable;
import javax.persistence.*;
import java.util.Date;

/**
 * pm_project:
 */
@Entity
@Table(name = "pm_project")
public class PmProject implements Serializable {

	private static final long serialVersionUID = 1L;

	/**
	 * project_id:
	 */
	private int projectId;

	/**
	 * project_name:
	 */
	private String projectName;

	/**
	 * parent_id:
	 */
	private String parentId;

	/**
	 * project_manager:
	 */
	private String projectManager;

	/**
	 * project_type_id:
	 */
	private byte projectTypeId;

	/**
	 * plan_start_date:
	 */
	private Date planStartDate;

	/**
	 * plan_delivery_date:
	 */
	private Date planDeliveryDate;

	/**
	 * actual_start_date:
	 */
	private Date actualStartDate;

	/**
	 * actual_delivery_date:
	 */
	private Date actualDeliveryDate;

	/**
	 * percent_completed:
	 */
	private float percentCompleted;

	/**
	 * ontrack_status_id:
	 */
	private byte ontrackStatusId;

	/**
	 * project_priority_id:
	 */
	private byte projectPriorityId;

	/**
	 * project_status_id:
	 */
	private byte projectStatusId;

	/**
	 * creator:
	 */
	private String creator;

	/**
	 * create_date:
	 */
	private Date createDate;

	/**
	 * updator:
	 */
	private String updator;

	/**
	 * update_date:
	 */
	private Date updateDate;

	/**
	 * description:
	 */
	private String description;

	public PmProject() {
		super();
	}

	public PmProject(int projectId, String projectName, String parentId,
			String projectManager, byte projectTypeId, Date planStartDate,
			Date planDeliveryDate, Date actualStartDate,
			Date actualDeliveryDate, float percentCompleted,
			byte ontrackStatusId, byte projectPriorityId, byte projectStatusId,
			String creator, Date createDate, String updator, Date updateDate,
			String description) {
		super();
		this.projectId = projectId;
		this.projectName = projectName;
		this.parentId = parentId;
		this.projectManager = projectManager;
		this.projectTypeId = projectTypeId;
		this.planStartDate = planStartDate;
		this.planDeliveryDate = planDeliveryDate;
		this.actualStartDate = actualStartDate;
		this.actualDeliveryDate = actualDeliveryDate;
		this.percentCompleted = percentCompleted;
		this.ontrackStatusId = ontrackStatusId;
		this.projectPriorityId = projectPriorityId;
		this.projectStatusId = projectStatusId;
		this.creator = creator;
		this.createDate = createDate;
		this.updator = updator;
		this.updateDate = updateDate;
		this.description = description;
	}

	public void setProjectId(int projectId) {
		this.projectId = projectId;
	}

	@Id
	@GeneratedValue(strategy = GenerationType.AUTO)
	@Column(name = "project_id", nullable = false)
	public int getProjectId() {
		return projectId;
	}

	public void setProjectName(String projectName) {
		this.projectName = projectName;
	}

	@Column(name = "project_name", length = 32, nullable = false)
	public String getProjectName() {
		return projectName;
	}

	public void setParentId(String parentId) {
		this.parentId = parentId;
	}

	@Column(name = "parent_id", length = 18, nullable = false)
	public String getParentId() {
		return parentId;
	}

	public void setProjectManager(String projectManager) {
		this.projectManager = projectManager;
	}

	@Column(name = "project_manager", length = 32)
	public String getProjectManager() {
		return projectManager;
	}

	public void setProjectTypeId(byte projectTypeId) {
		this.projectTypeId = projectTypeId;
	}

	@Column(name = "project_type_id", nullable = false)
	public byte getProjectTypeId() {
		return projectTypeId;
	}

	public void setPlanStartDate(Date planStartDate) {
		this.planStartDate = planStartDate;
	}

	@Temporal(TemporalType.TIMESTAMP)
	@Column(name = "plan_start_date")
	public Date getPlanStartDate() {
		return planStartDate;
	}

	public void setPlanDeliveryDate(Date planDeliveryDate) {
		this.planDeliveryDate = planDeliveryDate;
	}

	@Temporal(TemporalType.TIMESTAMP)
	@Column(name = "plan_delivery_date")
	public Date getPlanDeliveryDate() {
		return planDeliveryDate;
	}

	public void setActualStartDate(Date actualStartDate) {
		this.actualStartDate = actualStartDate;
	}

	@Temporal(TemporalType.TIMESTAMP)
	@Column(name = "actual_start_date")
	public Date getActualStartDate() {
		return actualStartDate;
	}

	public void setActualDeliveryDate(Date actualDeliveryDate) {
		this.actualDeliveryDate = actualDeliveryDate;
	}

	@Temporal(TemporalType.TIMESTAMP)
	@Column(name = "actual_delivery_date")
	public Date getActualDeliveryDate() {
		return actualDeliveryDate;
	}

	public void setPercentCompleted(float percentCompleted) {
		this.percentCompleted = percentCompleted;
	}

	@Column(name = "percent_completed")
	public float getPercentCompleted() {
		return percentCompleted;
	}

	public void setOntrackStatusId(byte ontrackStatusId) {
		this.ontrackStatusId = ontrackStatusId;
	}

	@Column(name = "ontrack_status_id", nullable = false)
	public byte getOntrackStatusId() {
		return ontrackStatusId;
	}

	public void setProjectPriorityId(byte projectPriorityId) {
		this.projectPriorityId = projectPriorityId;
	}

	@Column(name = "project_priority_id", nullable = false)
	public byte getProjectPriorityId() {
		return projectPriorityId;
	}

	public void setProjectStatusId(byte projectStatusId) {
		this.projectStatusId = projectStatusId;
	}

	@Column(name = "project_status_id", nullable = false)
	public byte getProjectStatusId() {
		return projectStatusId;
	}

	public void setCreator(String creator) {
		this.creator = creator;
	}

	@Column(name = "creator", length = 18)
	public String getCreator() {
		return creator;
	}

	public void setCreateDate(Date createDate) {
		this.createDate = createDate;
	}

	@Temporal(TemporalType.TIMESTAMP)
	@Column(name = "create_date")
	public Date getCreateDate() {
		return createDate;
	}

	public void setUpdator(String updator) {
		this.updator = updator;
	}

	@Column(name = "updator", length = 18)
	public String getUpdator() {
		return updator;
	}

	public void setUpdateDate(Date updateDate) {
		this.updateDate = updateDate;
	}

	@Temporal(TemporalType.TIMESTAMP)
	@Column(name = "update_date")
	public Date getUpdateDate() {
		return updateDate;
	}

	public void setDescription(String description) {
		this.description = description;
	}

	@Column(name = "description", length = 80)
	public String getDescription() {
		return description;
	}

	public String toString() {
		return "PmProject [projectId=" + projectId + ",projectName="
				+ projectName + ",parentId=" + parentId + ",projectManager="
				+ projectManager + ",projectTypeId=" + projectTypeId
				+ ",planStartDate=" + planStartDate + ",planDeliveryDate="
				+ planDeliveryDate + ",actualStartDate=" + actualStartDate
				+ ",actualDeliveryDate=" + actualDeliveryDate
				+ ",percentCompleted=" + percentCompleted + ",ontrackStatusId="
				+ ontrackStatusId + ",projectPriorityId=" + projectPriorityId
				+ ",projectStatusId=" + projectStatusId + ",creator=" + creator
				+ ",createDate=" + createDate + ",updator=" + updator
				+ ",updateDate=" + updateDate + ",description=" + description
				+ "]";
	}

}
